package com.ruoyi.kenuo.utils;
import org.bytedeco.javacv.*;
import org.bytedeco.javacv.FrameGrabber.Exception;

import javax.swing.*;

/**
 * @author POLO_TANG
 * @version 1.0.0
 * @ClassName JavacVideo
 * @description: TODO
 * @date 2024年08月16日
 */
public class JavacVideo {


    public static void main(String[] args) throws Exception, InterruptedException {
        VideoInputFrameGrabber grabber = VideoInputFrameGrabber.createDefault(0);


        grabber.setVideoBitrate(10000);
        grabber.setImageWidth(1920);
        grabber.setImageHeight(1080);
        grabber.start();
/*        // 使用视频捕获器来获取视频帧
        Video<FImage> video = new Video<FImage>(FImage.class, grabber);

        // 遍历视频帧
        for (FImage frame : video) {
            // 在这里可以添加图像处理技术来改善清晰度
            // 例如: 应用边缘强化滤波器
            // frame.sharpen();

            // 显示或保存处理后的帧
            // frame.drawToImage().display();
            // frame.drawToImage().saveToFile("output_frame_" + video.getCurrentFrameIndex() + ".png");
        }*/
        CanvasFrame canvasFrame = new CanvasFrame("摄像头");
        canvasFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        canvasFrame.setAlwaysOnTop(true);

        while (true) {
            if (!canvasFrame.isDisplayable()) {
                grabber.stop();
                System.exit(-1);
            }
            Frame frame = grabber.grab();
            canvasFrame.showImage(frame);
            Thread.sleep(30);
        }

    }

}
